# -*- coding: UTF-8 -*-
"""
@Project ：python 
@File    ：参数的类型.py
@IDE     ：PyCharm 
@Author  ：于金龙@阿龙的代码在报错
@Date    ：2024/7/22 下午4:13 
"""


# 位置参数
def add(a, b, c):  # 三个形式参数
    return a + b + c


# # 形式参数和实际参数的数量是相同的
# r1 = add(x, y, x)  # 实际参数
# r2 = add(4, 5, 6)
#
# print(r1, r2)
# def add(a, b, c):  # 三个形式参数
#     return a + b + c
#
#
# x = 4
# y = 5
#
#
# #
# # add(x, y, "hhhh")
#
#
# # 默认参数
# def power(x, n=2):
#     return x * n
#
#
# pw = power(2)
# pw1 = power(2, 6)
# print(pw, pw1)
#
#
# # 默认参数一定要放在位置参数的后面


def func(a=[]):
    a.append('hello')
    return a


print(func())
print(func())
print(func())


# 动态参数
def func(*args):  # *是必须存在的但是args可以换成其他，但是一般情况下不换
    print(args)  # 返回的是一个元组


# func(1, 2, 3)
a = [1, 2, 3]
func(*a)  # 想要将列表中的每个元素作为参数传递给func函数，需要实际参数中加“*”号


def func(**kwargs):
    print(kwargs)  # 返回值是一个字典


# func(k1=1, k2=2, k3=3)

dic = {
    "name": "yujinlong",
    "age": 18
}
func(**dic)  # 如果想要实际参数中接受字典需要在参数中写入两个“*”
